package edu.gatech.oad.mule.view.interfaces;

import java.awt.Color;
import java.awt.Point;

/**
 * Contains methods for retrieving necessary data for rendering a Player to the
 * screen.
 * 
 * @author Dale Avery
 * 
 */
public interface RenderablePlayer {

	/**
	 * Represents all the possible races the player can be assigned.
	 * 
	 * @author Dale Avery
	 * 
	 */
	public static enum PlayerRace {
		HUMAN, FLAPPER, BONZOID, UGAITE, BUZZITE, ERROR
	};

	/**
	 * @return The player's color.
	 */
	public Color getColor();

	/**
	 * @return The amount of crystite the player owns.
	 */
	public int getCrystite();

	/**
	 * @return The amount of energy the player owns.
	 */
	public int getEnergy();

	/**
	 * @return The amount of food the player owns.
	 */
	public int getFood();

	/**
	 * @return The player's position.
	 */
	public Point getLocation();

	/**
	 * @return The amount of money the player has.
	 */
	public int getMoney();

	/**
	 * @return The name of the player.
	 */
	public String getName();

	/**
	 * @return The player's race.
	 */
	public PlayerRace getRace();

	/**
	 * @return The amount of smithore the player owns.
	 */
	public int getSmithore();

	/**
	 * @return True if the player possesses a mule, false otherwise.
	 */
	public boolean hasMule();

}// end interface RenderablePlayer
